package com.authine.cloudpivot.ext.service;

import com.authine.cloudpivot.ext.model.bosi.BsscReq;
import com.authine.cloudpivot.ext.model.bosi.BsscResp;
import com.authine.cloudpivot.ext.model.bosi.OrderAcceptModel;
import com.authine.cloudpivot.ext.model.bosi.OrderGoodsDeliverModel;
import com.authine.cloudpivot.ext.model.goods.GoodsModel;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * @Author hxd
 * @Date 2021/9/28 20:54
 * @Description 冀中电商对接业务    固买原项目 FeignClient:  PunchoutBosiApi
 **/
public interface BsscService {


    /**
     *  1-8 固买提供给冀中电商
     *  8-、冀中提供给固买的接口
     */

    /**
     * （1）冀中调用固买认证接口
     *
     * @param bsscReq
     * @return
     */

    BsscResp getAuth(@RequestBody BsscReq<String> bsscReq);

    /**
     * （2）获取品类列表
     */
    BsscResp getItemList(@RequestBody BsscReq<String> bsscReq);

    /**
     * （3）查询商品的库存情况
     */
    BsscResp getGoodsInventory(@RequestBody BsscReq<String> bsscReq);

    /**
     * （4）查询商品价格
     */
    BsscResp getGoodsPrice(@RequestBody BsscReq<String> bsscReq);

    /**
     * （5）查询物流信息
     */
    BsscResp getLogisticsInformation(@RequestBody BsscReq<String> bsscReq);

    /**
     * （6）查询订单系统订单号
     */
    BsscResp getOrderId(@RequestBody BsscReq<String> bsscReq);

    /**
     * （7）查询电商系统售后单号
     */
    BsscResp getMallAfterSaleNo(@RequestBody BsscReq<String> bsscReq);

    /**
     * （8）供应商网络会根据业务发出消息指令给电商，电商提供接收消息的监听接口。根据接收到的消息类型进行相关业务处理
     */
    BsscResp messageListening(@RequestBody BsscReq<String> bsscReq);


    /************************************************商城****************************************************/

    /**
     * （9）商品导入
     *
     * @param goodsModelList
     * @return
     */
    BsscResp goodsImport(@RequestBody List<GoodsModel> goodsModelList);

    /**
     * （10）商品价格变更
     *
     * @param goodsModel
     */
    BsscResp updateGoodsAmount(@RequestBody GoodsModel goodsModel);


    /**
     * （11）商品库存变更
     */
    BsscResp updateGoodsInventory(@RequestBody GoodsModel goodsModel);


    /**
     * （12）商品上下架状态变更
     *
     * @param goodsModel
     */
    BsscResp updateGoodsStatus(@RequestBody List<GoodsModel> goodsModel);


    /**
     * （13）商品图片变更
     */
    BsscResp updateGoodsImages(@RequestBody GoodsModel goodsModel);

    /**
     * （14）商品规格变更
     */
    BsscResp updateGoodsSpec(@RequestBody GoodsModel goodsModel);

    /**
     * （15）商品详情变更
     */
    BsscResp updateGoodsDetail(@RequestBody GoodsModel goodsModel);


    /**********************************************订单****************************************************/

    /**
     * 冀中商品接单
     *
     * @param orderAcceptModel
     * @return
     */
    List<BsscResp> orderAccept(@RequestBody List<OrderAcceptModel> orderAcceptModel);

    /**
     * 冀中商品发货
     *
     * @param orderGoodsDeliverModel
     * @return
     */
    BsscResp orderGoodsDeliver(@RequestBody OrderGoodsDeliverModel orderGoodsDeliverModel);


}
